<?php
	
	$app->get('/asistente/listar', function () use($app){
    	$app->render('../web/pages/asistente/asistenteListar.php');
	});
	
	$app->get('/asistente/listarJson', function (){
		$response = new stdClass();	
		$page = $_GET['page']; // get the requested page 
		$limit = $_GET['rows']; // get how many rows we want to have into the grid
		$idEmpresa = $_SESSION['idEmpresa'];
    	$count = Asistente::getCantRows($idEmpresa);
    	
    	if( $count >0 ) {
    		 $total_pages = ceil($count/$limit); 
		}else {
			 $total_pages = 1; 
		}
		if ($page > $total_pages) $page=$total_pages; 
		$start = $limit*$page - $limit; // do not put $limit*($page - 1)
		$asistentes = Asistente::listarInicioFin($idEmpresa,$start, $limit);
    	$i = 0;
		$response->page = $page; 
		$response->total = $total_pages; 
		$response->records = $count;
		foreach ($asistentes as $asist) {
    		$response->gridModel[$i]['idAsistente']=$asist->idAsistente;
			$response->gridModel[$i]['nombreApell']=$asist->nombreApell;
			$usuario = $asist->usuario()->find_one();
			if($usuario!=false){
				$response->gridModel[$i]['nombreUsuario'] = $usuario->nombre;
			}
			$i++;
		}
		echo json_encode($response);
	});
	
	$app->post('/asistente/administrar', function (){
		$asistente = null;
		$idAsistente = null;
		$idUsuario = null;
		$usuario = null;
		$nombreUsuario = "";
		$idEmpresa = $_SESSION['idEmpresa'];
		$response = new stdClass();
		if(isset($_POST['nombreUsuario'])){
			$nombreUsuario = $_POST['nombreUsuario'];
		}
		if(existeUsuarioRepetidoTecnico($nombreUsuario, $_POST['id'])){
			$response->estado = "ERROR";
			$response->errores = "El usuario ingresado ya está en uso";
			echo json_encode($response);
			return 0;
		}
		if($_POST['oper'] == "del" || !existeUsuarioRepetidoAsistente($nombreUsuario, $_POST['id'])){	
			if($_POST['id'] != "_empty" ){
				$idAsistente = $_POST['id'];	
			}
			//traigo el asistente
			if($_POST['oper'] != "add"){
				$asistente = Asistente::buscarAsistente($idAsistente);
				$usuario = $asistente->usuario()->find_one();
			}
			if($_POST['oper'] == "edit"){
				$idUsuario = $usuario->idUsuario;
				$usuario->nombre = $_POST['nombreUsuario'];
				$usuario->save();
			}
			if($_POST['oper'] == "del"){
				Asistente::borrarAsistente($idAsistente);	
				Usuario::borrarUsuario($usuario->idUsuario);
				
			}else{
				//asistente nuevo
				if($asistente == null && $_POST['oper'] == "add"){
					$usuario = Model::factory('usuario')->create();
					$usuario->nombre = $_POST['nombreUsuario'];
					$usuario->contrasenia = "12345";
					$usuario->idPerfil = 1;
					$usuario->save();
					$idUsuario = $usuario->idUsuario;
					$asistente = Model::factory('asistente')->create();	
				}
				$asistente->nombreApell = $_POST['nombreApell'];
				$asistente->idUsuario = $idUsuario;
				$asistente->idEmpresa= $idEmpresa;
				$asistente->save();
			}
		}
	});
	
	function existeUsuarioRepetidoAsistente($nombreUsuario,$idAsistente){
		$asistente = null;
		$usuarioAux =null;
		$usuario = Usuario::buscarUsuarioPorNombre($nombreUsuario);
		if($usuario == FALSE){
			return FALSE;
		}else{
			// si es un asistente que ya existe se controla si el usuario que se encontro es el que pertenece al asistente
			if($idAsistente != "_empty"){
				$asistente = Asistente::buscarAsistente($idAsistente);
				$usuarioAux = $asistente->usuario()->find_one();
				if($usuario->idUsuario == $usuarioAux->idUsuario){
					return FALSE;
				}else{
					return TRUE;
				}
			}else{
				// si es un asistente nueva entonces el usuario que se encontro pertenece a otro asistente
				return TRUE;
			}
		}	
	}
	
?>